\DeclareMathOperator*{\esssup}{ess\,sup}

\usepackage{ifthen}
\newcounter{qlst}
\newenvironment{EqDesc}[2][式中]{%
	\begin{list}{}
		{%
			\usecounter{qlst}
			\settowidth{\labelwidth}{#1，\ \ #2\ --- \ }
			\setlength{\labelsep}{0pt}
			\setlength{\leftmargin}{\labelwidth}
			\setlength{\rightmargin}{0em}
			\setlength{\parsep}{0ex}
			\setlength{\itemsep}{0ex}
			\setlength{\itemindent}{0em}
			\setlength{\listparindent}{0em}
			\renewcommand{\makelabel}[1]
			{\stepcounter{qlst}
				\ifthenelse{\value{qlst}>1}{\hfill ##1\ --- \ }{#1，\hfill ##1\ --- \ }
			}
		}%
	}%
	{\end{list}}

\makeatletter
\def\ExtendSymbol#1#2#3#4#5{\ext@arrow 0099{\arrowfill@#1#2#3}{#4}{#5}}
\def\RightExtendSymbol#1#2#3#4#5{\ext@arrow 0359{\arrowfill@#1#2#3}{#4}{#5}}
\def\LeftExtendSymbol#1#2#3#4#5{\ext@arrow 6095{\arrowfill@#1#2#3}{#4}{#5}}
\makeatother

\newcommand\myRightarrow[2][]{\RightExtendSymbol{|}{=}{\Rightarrow}{#1}{#2}}
\newcommand\myArrow[2][]{\ExtendSymbol{\Leftarrow}{=}{\Rightarrow}{#1}{#2}}

\newenvironment{shrinkeq}[1]
{ \bgroup
	\addtolength\abovedisplayshortskip{#1}
	\addtolength\abovedisplayskip{#1}
	\addtolength\belowdisplayshortskip{#1}
	\addtolength\belowdisplayskip{#1}}
{\egroup\ignorespacesafterend}

\newcommand{\abs}[1]{\vert #1 \vert}